<!doctype html>
<html lang="en">

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  
  <meta name="generator" content="Hugo 0.98.0" />

  
  <meta name="description" content="走在通往幸福的路上">
  

  
  <link rel="apple-touch-icon" sizes="180x180" href="https://blog.v5u.win/apple-touch-icon.png">

  
  <link rel="icon" type="image/png" sizes="32x32" href="https://blog.v5u.win/favicon-32x32.png">

  
  <link rel="icon" type="image/png" sizes="16x16" href="https://blog.v5u.win/favicon-16x16.png">

  
  <link rel="manifest" href="https://blog.v5u.win/site.webmanifest">

  
  <link rel="mask-icon" href="https://blog.v5u.win/safari-pinned-tab.svg" color="">

  <meta name="msapplication-TileColor" content="">

  <meta name="theme-color" content="">

  
  <link rel="stylesheet" href="https://blog.v5u.win/css/bootstrap.min.css" />

  
  <title>Design 对设计模式的思考 | 为吾优</title>
  

  <style>
body {
  min-width: 300px;
}

.custom-navbar {
  margin-bottom: 1em;
  height: 60px;
}

.custom-navbar a {
  display: inline-block; 
  padding: 18px 0;
  margin-right: 1em; 
  font-weight: bold; 
}

.custom-navbar a:hover,
.custom-navbar a:focus {
  text-decoration: none; 
}

@media print {
  .custom-navbar {
    display: none;
  }
}

article {
  padding-bottom: 1em;
}

img {
  max-width: 100%;
}


body {
  background-color: #fff;
}



body {
  color: #212529;
}



a {
  color: #007bff;
}



a:hover,
a:focus {
  color: #0056b3;
}



.custom-navbar {
  background-color: #212529;
}



.custom-navbar a {
  color: rgba(255,255,255,.75);
}



.custom-navbar a:hover,
.custom-navbar a:focus {
  color: rgba(255,255,255,1);
}



.container {
  max-width: 800px;
}





</style>
</head>

<body>
  <nav class="custom-navbar">
  <div class="container">
    
    <a href="/">文章</a>
    
    <a href="/tags/">标签</a>
    
    <a href="/about/">关于</a>
    
    <a href="/index.xml">RSS</a>
    
  </div>
</nav>
  
  <div class="container">
    <article>
      <h1>Design 对设计模式的思考</h1>
<p>最是真情留不住，总是套路得人心。</p>
<p>大家好，我是笨笨的程序员饭饭，今天我想和大家聊一下设计模式。</p>
<p>在我还是一个菜鸟小白的时候，曾经遇到过一个让我一剑诛心的问题，你知道数据结构和算法吗？这个问题在我以后的睡梦中常常过来光顾，一抹邪笑，留下我独自惊醒。基于此我购买了人生中第一本技术书大话设计模式。</p>
<p>这么多年下来反思总结，得出了一个结论，不管是算法还是设计模式它们有一个共同的名字叫做套路。</p>
<p>所谓套路就说有一个固定的方式让你可以参考，解决某一类特定的问题。</p>
<p>算法就是解决业务实现过程中的套路。设计模式就是解决工程实践中遇到的套路。</p>
<p>所以我建议以后面试可以这样提问，你知道多少工作中用到的套路。妥妥的打开思路。</p>
<p>这让我想起来一个事情，就像UNIX系统中的哲学思想，一切都是文件。在工作中一切皆是套路。</p>
<p>你知道多少套路就能快速解决多少问题。所以很多面试官喜欢考察数据结构和算法。</p>
<p>中国武术兵器有刀枪剑戟斧钺钩叉拐子流星锤。作为一个打架的，你可以不都会，但必须都了解。要不然与人捉对厮杀，对方使出流星锤，你一刀砍出被人缠住，这就尴尬了。
和这一样，工作中你接手一个老项目，都能运行正常，就是内部实现很乱，就是看不懂。要求你做些增量开发，添加一些功能，无处下手的时候，也是比较尴尬了。
你可能会说我就喜欢做新项目，但是要知道不管什么样的项目最终都会成为屎山，就是项目死了，他也是一座死屎山。</p>
<p>这个时候如果你知道适配器模式，你就有了思路。当然今天这个不是重点。我们拉回来。</p>
<p>套路如此重要，以至于你可以在任何地方都能感受到套路的存在。就比如pua，作为一个单身男女，孤独的生活总是寂寞的。而我们想要解决这一个问题。就需要懂一些PUA上面的套路。或者说一些心理学上的小知识。我在程序员的自我修养中获得的最重要的知识点就是。如果复杂度超出了你的控制那么最好的一个办法就是加一个中间层。所以我们可以看到网络的分层设计。操作系统的数据访问结构设计：寄存器，高速缓存，内存再到磁盘。类似的还有后端的高可用架构的设计。所以我们得出一个结论，万物皆可分层。分层就是是解决复杂度的套路。我们的设计模式中当然也有类似的套路。就比如门面模式。建造者模式。状态机模式。他们都有一个相似的套路那就是提供一个对外的统一的接口。</p>
<p>最是真情留不住，总是套路得人心。</p>
<p>今天就先讲到这里。我是笨笨的程序员饭饭。欢迎大家收听我的下一期节目。再见！</p>

    </article>
  </div>

  
  
  

  
</body>

</html>